(Not Applicable).
(Not-Applicable).
The present Invention generally relates to a method of searching for a song and more particularly to a simplified search method adapted for use on a computer.
As is well known, songs are composed of music and words. The music comprises the ordering of tones and sounds (i.e., notes) in succession to form temporal relationships that produce a composition having unity and continuity. Often times, a musician or music lover will know the tune (i.e., melody) of a song, yet not know the title, words, or music associated therewith. The musician or music lover would like to know the name of the song in order to find the sheet music for it and/or recordings of the desired song. In the prior art, if a music lover and/or musician knows the tune of the song, he/she has a difficult time in finding the title of the song.
In order to facilitate searching for songs, prior art computer systems have been designed which search for matches between notes entered by the searcher and the notes of the song. Typically, in the prior art, a song database is created by entering the notes comprising the music into a computer memory. The song is stored electronically wherein each note is exactly duplicated in the memory of the computer. In order to perform a search with the prior art system, the searcher enters a sequence of notes of the song into the computer, and the system will attempt to find a match between the entered notes and the notes in the database.
Prior art music search systems have been inadequate in that the music is encoded into the database in a fixed key. The database of the prior art music search engine comprises a note listing for each song. The note listing will be generated in the key of the song as written on the music or performed by the encoder. The prior art music search system searches for music corresponding identically to the notes entered by the user. Therefore, in order to find a song, the user must enter notes in the same key and the identical sequence as they were encoded into the song database. The search system will find songs that identically match the notes entered by the user. If the user enters notes in a different key, or makes a mistake in the value of a note, the search system will not find a match for the song. In order to find songs entered in a different key by the user, the prior art search system must either include a database of songs transposed into different keys or transpose the notes entered by the user into the key that the database songs are entered. Neither method is ideal because of the inefficiency of the music search. Specifically, if all songs are entered into the database in all possible keys, the system must search through many unnecessary song versions to find a match. Similarly, if the system converts the entered notes into all possible keys, the system must allocate resources to transpose the notes, and then perform multiple searches (i.e., one for each different key). In either case, the prior art search system will only produce the desired result if the user correctly enters a sequence of notes.
As, described above, prior art music search systems require a large amount of computational resources, and as such are highly inefficient. They are also impractical due to the fact that various interpretations of different stylistic impressions of a song (during encoding) and imperfect recollection of a song""s exact note sequences (during searching) are common and inhibiting factors. The present invention addresses the problems associated with the prior art music search systems by providing a key-independent music search engine operative to determine a match between the notes entered and the notes of a song using computational resources more efficiently. Additionally, the present invention provides a music search engine capable of finding the closest matches for songs, even if the entered note sequence contains errors. Furthermore, the present invention provides a music search engine that facilitates the analysis and categorization of music in a fast and efficient manner. The music search engine of the present invention additionally provides a system whereby songs found by the system may be transposed into a key selected by the user.
In accordance with a preferred embodiment of the present invention, there is provided a music search method for finding a desired song in a song database. The method comprises generating a difference sequence for each song encoded in the song database by determining the difference between adjacent notes (the term xe2x80x98differencexe2x80x99 as used herein means the number of chromatic scale notes, each representing {fraction (1/12)}th of an octave). Next, a note sequence is entered for the song to be found within the song database. A difference argument is generated for the note sequence by determining the difference between adjacent notes. The difference argument for the note sequence and the difference sequence for each song in the song database is compared. The desired song is found if the difference argument for the note sequence corresponds to a portion of the difference sequence for the desired song.
In the preferred embodiment, the difference between each adjacent note of the note sequence and each adjacent note of the songs in the song database are assigned a prescribed value. Accordingly, the differences between the prescribed values are compared in order to determine the closeness of the match between the two.
In the preferred embodiment, if an exact match between the note sequence and the songs in the song database does not occur, it is possible to determine a near match. A near match determined when the difference argument varies from the difference sequence within a prescribed variance decided by the user. Additionally, the difference argument and the difference sequence may be filtered before comparison. In this respect, the multiple and/or artistic notes (as may occur in a xe2x80x98jazzyxe2x80x99 rendition of a song) in songs may be removed prior to comparison.
The note sequence to be searched may be entered into the computer with an input device. In this respect, the input device may be a keyboard and/or mouse of the computer. Alternatively, the input device may be a voice or MIDI instrument in electrical communication with the computer.
In accordance with the preferred embodiment there is additionally provided a method of encoding songs for searching. The method comprises generating a database of songs and then determining a difference sequence for each song. The difference sequences are stored such that they may be searched at a later time. Typically, the database is generated electronically, as well as the determining and storing of the difference sequences.
The present invention is ideally suited for determining structural attributes and patterns in music by first generating a difference sequence for each song contained within a song database. In the context of structural analysis of music, a xe2x80x98difference sequencexe2x80x99 may additionally be applied to relative changes in note duration (rhythm) as well as frequency. Next, the difference sequences may be analyzed to discover patterns within the music. Typically, the patterns are derived by comparing the differences between adjacent notes of the difference sequence. The identification of common structural attributes and patterns for a given subset of songs may be very useful in contributing to the understanding of why people like certain songs.